home *** CD-ROM | disk | FTP | other *** search
-
- #ifndef __PEONSTDAFX_H_
- #define __PEONSTDAFX_H_
- /*
- Peon - Win32 Games Programming Library
- Copyright (C) 2002-2005 Erik Yuzwa
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Erik Yuzwa
- peon AT wazooinc DOT com
- */
-
- #include "PeonDLLHeader.h"
-
-
- #if defined( __WIN32__ ) || defined( _WIN32 )
- //enable some memory leak detection
- #if defined(DEBUG) | defined(_DEBUG)
- #define CRTDBG_MAP_ALLOC
- #include <stdlib.h>
- #include <crtdbg.h>
- #endif
-
- #endif
-
- /***************************************************************
- * These headers define our OpenGL subsystem and helper functions
- ***************************************************************/
- #include <SDL.h>
- #include <SDL_opengl.h>
- #include "GL/glext.h"
-
-
- /***************************************************************
- * These headers define our lua subsystem and helper functions
- ***************************************************************/
- extern "C"
- {
- #include "lua/lua.h"
- #include "lua/lualib.h"
- #include "lua/lauxlib.h"
- }
-
- /***************************************************************
- * These headers define our tokamak physics library
- ***************************************************************/
- #include "tokamak/tokamak.h"
-
- /***************************************************************
- * These headers define our Audio subsystem and helper functions
- ***************************************************************/
-
- //SDL_Mixer
- #include <SDL_mixer.h>
-
- //OpenAL
- #include "al/al.h"
- #include "al/alc.h"
- #include "al/alut.h"
-
- //Ogg-Vorbis SDK which is used to read audio files in OGG format
- #include "ogg/ogg.h"
- #include "vorbis/codec.h"
- #include "vorbis/vorbisenc.h"
- #include "vorbis/vorbisfile.h"
-
-
- /***************************************************************
- * These headers define our CEGUI subsystem and helper functions
- ***************************************************************/
- #include "CEGUI/CEGUI.h"
- #include "CEGUI/renderers/OpenGLGUIRenderer/openglrenderer.h"
-
-
-
- /***************************************************************
- * Various warnings that we need to disable
- ***************************************************************/
- // Turn off warnings generated by long std templates
- // This warns about truncation to 255 characters in debug/browse info
- # pragma warning (disable : 4786)
-
- // Turn off warnings generated by long std templates
- // This warns about truncation to 255 characters in debug/browse info
- # pragma warning (disable : 4503)
-
- // disable: "conversion from 'double' to 'float', possible loss of data
- # pragma warning (disable : 4244)
-
- // disable: "truncation from 'double' to 'float'
- # pragma warning (disable : 4305)
-
- // disable: "<type> needs to have dll-interface to be used by clients'
- // Happens on STL member variables which are not public therefore is ok
- # pragma warning (disable : 4251)
-
- // disable: "non dll-interface class used as base for dll-interface class"
- // Happens when deriving from Singleton because bug in compiler ignores
- // template export
- # pragma warning (disable : 4275)
-
- // disable: "C++ Exception Specification ignored"
- // This is because MSVC 6 did not implement all the C++ exception
- // specifications in the ANSI C++ draft.
- # pragma warning( disable : 4290 )
-
- // disable: "no suitable definition provided for explicit template
- // instantiation request" Occurs in VC7 for no justifiable reason on all
- // #includes of Singleton
- # pragma warning( disable: 4661)
-
- // disable: deprecation warnings when using CRT calls in VC8
- // These show up on all C runtime lib code in VC8, disable since they clutter
- // the warnings with things we may not be able to do anything about (e.g.
- // generated code from nvparse etc). I doubt very much that these calls
- // will ever be actually removed from VC anyway, it would break too much code.
- # pragma warning( disable: 4996)
-
- #include <cassert>
- #include <cstdio>
- #include <cstdlib>
- #include <ctime>
- #include <cstring>
- #include <cstdarg>
- #include <cmath>
-
- // STL containers
- #include <vector>
- #include <map>
- #include <string>
- #include <set>
- #include <list>
- #include <deque>
- #include <queue>
-
-
- // STL algorithms & functions
- #include <algorithm>
- #include <functional>
- #include <limits>
-
- // C++ Stream stuff
- #include <fstream>
- #include <iostream>
- #include <iomanip>
- #include <sstream>
-
-
- #if defined( __WIN32__ ) || defined( _WIN32 )
-
- #undef min
- #undef max
-
- #endif
-
-
-
- /**
- * These following blocks of preproccessor statements are used to
- * wrap around statements for cleaning up either pointers or
- * arrays of allocated elements.
- */
- #define PEON_DELETE(p) { if(p) { delete (p); (p)=NULL; } }
- #define PEON_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } }
-
-
- /**
- * The following block of preprocessor statements give us a bit of a hand
- * when we want to do some radian to degree (or vice versa) conversions. Nothing
- * fancy here.
- */
- #define PEON_PI 3.141592654f
- #define PEON_DEGTORAD(degree) ((degree) * (PEON_PI / 180.0f))
- #define PEON_RADTODEG(radian) ((radian) * (180.0f / PEON_PI))
-
-
- namespace peon
- {
-
-
- /**
- * The following block of preprocessor statements try to create a common interface
- * for using the std::string object. If we are targeting a UNICODE build, then
- * this will substitute all the std::string objects with std::wstring.
- */
- #if defined( PEON_UNICODE )
- typedef std::wstring _StringBase;
- typedef const wchar_t* _StringPtrBase;
- #else
- typedef std::string _StringBase;
- typedef const char* _StringPtrBase;
- #endif
-
- typedef _StringBase String;
- typedef _StringPtrBase StringPtr;
-
-
- class Angle;
- class AudioEngine;
- class AxisAlignedBox;
- class Billboard;
- class Degree;
- class EngineCore;
- class FileLogger;
- class IActor;
- class IApplication;
- class IniConfigReader;
- class ISceneObject;
- class IUnknown;
- class Matrix33;
- class Matrix44;
- class MathUnit;
- class Plane;
- class PlaneBoundedVolume;
- class Radian;
- class Ray;
- class SceneCamera;
- class SceneFont;
- class SceneLight;
- class SceneOBJ;
- class SceneMD3;
- class SceneRenderer;
- class SceneTexture;
- class Skybox;
- class Sphere;
- class ParticleEmitter;
- class Quaternion;
- class Shockwave;
- class Timer;
- class Vector2;
- class Vector3;
- class Vector4;
-
-
- }
-
- #endif
-
-
-
-
-
-
-
-
-
-
-
-